/*
 * drv_gpio.h
 *
 *  Created on: 2025年4月9日
 *      Author: 22332
 */

#ifndef DRV_GPIO_H_
#define DRV_GPIO_H_

#include "sdk_project_config.h"

#define INPUT_NUM   7
#define OUTPUT_NUM	14

typedef enum
{
    GPIO_PIN_LEVEL_LOW    = 0U,    /*!< Pin level low */
    GPIO_PIN_LEVEL_HIGH   = 1U     /*!< Pin level high */
} gpio_pin_level_t;

struct gpio_cfg_out_t
{
    GPIO_Type* port;
    uint32_t pin;
    gpio_pin_level_t def;
};

struct gpio_cfg_in_t
{
    GPIO_Type* port;
    uint32_t pin;
};


extern void bsp_drv_gpio_cfg_input(void);
extern void bsp_drv_gpio_cfg_output(void);
extern pins_channel_type_t  bsp_drv_gpio_pin_read(int index);
extern void bsp_drv_gpio_pin_write(int index, gpio_pin_level_t status);

#endif /* DRV_GPIO_H_ */
